草庐IT

leetcode 2744

全部标签

leetcode 148. Sort List 排序链表(中等)

一、题目大意给你链表的头结点head,请将其按升序排列并返回排序后的链表。示例1:输入:head=[4,2,1,3]输出:[1,2,3,4]示例2:输入:head=[-1,5,3,4,0]输出:[-1,0,3,4,5]示例3:输入:head=[]输出:[]提示:链表中节点的数目在范围[0,5*104]内-105进阶:你可以在O(nlogn)时间复杂度和常数级空间复杂度下,对链表进行排序吗?来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sort-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路用快慢指针将列表

leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)

一、题目大意将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]提示:两个链表的节点数目范围是[0,50]-100l1和l2均按非递减顺序排列来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-two-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路还是分递归和迭代

leetcode 206. Reverse Linked List 反转链表(简单)

一、题目大意给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]提示:链表中节点的数目范围是[0,5000]-5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode.cn/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路用迭代和递归来实现,迭代思路

leetcode 409 Longest Palindrome 最长回文串(简单)

一、题目大意给定一个包含大写字母和小写字母的字符串s,返回通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。示例1:输入:s="abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd",它的长度是7。示例2:输入:s="a"输入:1提示:1s只由小写和/或大写英文字母组成来源:力扣(LeetCode)链接:https://leetcode.cn/problems/longest-palindrome著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路思路:先统计每个字符出现的次数,再遍历统计后

【Leetcode】768. 最多能完成排序的块 II

题目(链接)arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块?示例 1:输入:arr=[5,4,3,2,1]输出:1解释:将数组分成2块或者更多块,都无法得到所需的结果。例如,分成[5,4],[3,2,1]的结果是[4,5,1,2,3],这不是有序的数组。示例2:输入:arr=[2,1,3,4,4]输出:4解释:我们可以把它分成两块,例如[2,1],[3,4,4]。然而,分成[2,1],[3],[4],[4]可以得到最多的块数。注意:arr的长度在[1,2000]

leetcode 28. Implement strStr() 实现 strStr()(简单)

一、题目大意实现strStr()函数。给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串出现的第一个位置(下标从0开始)。如果不存在,则返回-1。说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当needle是空字符串时我们应当返回0。这与C语言的strstr()以及Java的indexOf()定义相符。示例1:输入:haystack="hello",needle="ll"输出:2示例2:输入:haystack="aaaaa",needle="bba"输出:-1提示:1haystack和needl

leetcode 219. Contains Duplicate II 存在重复元素 II(简单)

一、题目大意给你一个整数数组nums和一个整数k,判断数组中是否存在两个不同的索引i和j,满足nums[i]==nums[j]且abs(i-j)示例1:输入:nums=[1,2,3,1],k=3输出:true示例2:输入:nums=[1,0,1,1],k=1输出:true示例3:输入:nums=[1,2,3,1,2,3],k=2输出:false提示:1-1090来源:力扣(LeetCode)链接:https://leetcode.cn/problems/contains-duplicate-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路本来要刷220.存在

leetcode 104. Maximum Depth of Binary Tree 二叉树的最大深度(简单)

一、题目大意给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最大深度3。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路思路:求二叉树的最大深度问题用深度优先搜索DepthFirstSearch,递归的完美应用。思路二:也可以用层序遍历二叉树,然后

leetcode 148. Sort List 排序链表(中等)

一、题目大意给你链表的头结点head,请将其按升序排列并返回排序后的链表。示例1:输入:head=[4,2,1,3]输出:[1,2,3,4]示例2:输入:head=[-1,5,3,4,0]输出:[-1,0,3,4,5]示例3:输入:head=[]输出:[]提示:链表中节点的数目在范围[0,5*104]内-105进阶:你可以在O(nlogn)时间复杂度和常数级空间复杂度下,对链表进行排序吗?来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sort-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路用快慢指针将列表

leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)

一、题目大意将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]提示:两个链表的节点数目范围是[0,50]-100l1和l2均按非递减顺序排列来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-two-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路还是分递归和迭代